package account.student.view;

import javax.swing.ButtonGroup;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;

import java.awt.Dimension;
import java.awt.Font;
import java.awt.Toolkit;

import javax.swing.JTextField;

import java.util.Observable;
import java.util.Observer;

import javax.swing.JButton;
import javax.swing.JPasswordField;
import javax.swing.SwingConstants;

import mededelingen.model.Knoppenlijst;
import dao.account.DataLayerAccount;
import account.docent.view.DocentAccountView;
import account.model.Account;
import account.model.SubTeam;
import account.student.controller.StudentAccountController;

public class StudentAccountView extends JFrame {

	private static StudentAccountView instance;

	public JTextField StatusTF = new JTextField();
	public JTextField EmailTF = new JTextField();
	public JTextField GebruikersnaamTF = new JTextField();
	public JLabel VoornaamTF = new JLabel();
	public JLabel AchternaamTF = new JLabel();
	public JLabel GebruikersnaamLB = new JLabel();
	public JLabel OvnummerLB = new JLabel();
	public JPasswordField passwordField = new JPasswordField("testval");
	
	public JLabel lblProfiel = new JLabel("Profiel bewerken");
	public JLabel lblStatus = new JLabel("Status :");
	public JLabel lblVoornaam = new JLabel("Voornaam :");
	public JLabel lblAchternaam = new JLabel("Achternaam :");
	public JLabel lblEmail = new JLabel("E-mail :");
	public JLabel lblGebruikersnaam = new JLabel("Gebruikersnaam :");
	public JLabel lblWachtwoord = new JLabel("Wachtwoord");
	public JLabel lblOvnummer = new JLabel("OV-nummer :");

	public JFrame frame = new JFrame();
	public JPanel mainPanel = new JPanel();
	public ButtonGroup bg = new ButtonGroup();

	public static StudentAccountView getInstance() {
		if (instance == null) {
			instance = new StudentAccountView();
		}
		return instance;
	}
	
	private StudentAccountView() {	
		frameSetup();
		//accounts gegevens laden
		loadData();
	}
	
	private void loadData() {
		SubTeam.getInstance().loadStudent();
		
		//account gegevens
		String gebruikersnaam = SubTeam.getInstance().getAcc().getGebruikersnaam();
		String wachtwoord = SubTeam.getInstance().getAcc().getWachtwoord();
		String voornaam = SubTeam.getInstance().getAcc().getPersoon().getVoornaam();
		String achternaam = SubTeam.getInstance().getAcc().getPersoon().getAchternaam();
		String email = SubTeam.getInstance().getAcc().getPersoon().getEmail();
	
//		String status = SubTeam.getInstance().getAcc().getStudent().getStatus();
//		int ovnummer = SubTeam.getInstance().getAcc().getStudent().getOvnummer();
		
		//hulpvraagknoppen afkorting
		GebruikersnaamLB.setText(gebruikersnaam);
//		passwordField.setText(wachtwoord);
		VoornaamTF.setText(voornaam);
		AchternaamTF.setText(achternaam);
		EmailTF.setText(email);
//		StatusTF.setText(status);
//		OvnummerLB.setText(String.valueOf(ovnummer));
	}

	private void frameSetup() {
		//BUTTONS
		JButton btnOpslaan = new JButton("Opslaan");
		btnOpslaan.setFont(new Font("Tahoma", Font.BOLD, 11));
		btnOpslaan.addActionListener(new StudentAccountController(btnOpslaan));
		btnOpslaan.setBounds(264, 247, 109, 23);
		mainPanel.add(btnOpslaan);

		JButton btnAnnuleren = new JButton("Annuleren");
		btnAnnuleren.addActionListener(new StudentAccountController(btnAnnuleren));
		btnAnnuleren.setBounds(389, 247, 109, 23);
		mainPanel.add(btnAnnuleren);

		//LABELS
		JLabel lblStatus = new JLabel("Status");
		lblStatus.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblStatus.setBounds(10, 84, 73, 14);
		mainPanel.add(lblStatus);

		lblProfiel.setFont(new Font("Tahoma", Font.BOLD, 20));
		lblProfiel.setBounds(10, 27, 201, 25);
		mainPanel.add(lblProfiel);

		lblVoornaam.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblVoornaam.setBounds(10, 116, 73, 14);
		mainPanel.add(lblVoornaam);

		lblAchternaam.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblAchternaam.setBounds(286, 116, 87, 14);
		mainPanel.add(lblAchternaam);

		lblEmail.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblEmail.setBounds(10, 150, 46, 14);
		mainPanel.add(lblEmail);

		lblGebruikersnaam.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblGebruikersnaam.setBounds(10, 181, 120, 14);
		mainPanel.add(lblGebruikersnaam);
;
		VoornaamTF.setBounds(121, 116, 120, 20);
		mainPanel.add(VoornaamTF);
	
		AchternaamTF.setBounds(378, 113, 120, 20);
		mainPanel.add(AchternaamTF);

		GebruikersnaamLB.setBounds(121, 180, 109, 16);
		mainPanel.add(GebruikersnaamLB);

		OvnummerLB.setFont(new Font("Tahoma", Font.PLAIN, 13));
		OvnummerLB.setBounds(378, 148, 109, 16);
		mainPanel.add(OvnummerLB);

		lblWachtwoord.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblWachtwoord.setBounds(286, 185, 73, 14);
		mainPanel.add(lblWachtwoord);


		lblOvnummer.setFont(new Font("Tahoma", Font.PLAIN, 13));
		lblOvnummer.setBounds(286, 149, 87, 16);
		mainPanel.add(lblOvnummer);


		//TEXTFIELDS
		StatusTF.setColumns(10);
		StatusTF.setBounds(121, 82, 377, 20);
		mainPanel.add(StatusTF);

		EmailTF.setBounds(121, 147, 120, 20);
		EmailTF.setColumns(10);
		mainPanel.add(EmailTF);

		passwordField.setBounds(378, 178, 120, 20);
		mainPanel.add(passwordField);

		//PANEL SETTINGS

		mainPanel.setLocation(0, 0);
		mainPanel.setLayout(null);
		mainPanel.setSize(new Dimension(560, 344));

		//FRAME SETTINGS

		this.getContentPane().add(mainPanel);
		this.getContentPane().setLayout(null);
		this.setTitle("Profiel bewerken");
		this.setSize(560, 321);
		this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
		this.setVisible(true);
		this.setResizable(false);

		Dimension center = Toolkit.getDefaultToolkit().getScreenSize();
		this.setLocation(center.width / 2 - this.getSize().width / 2,
				center.height / 2 - this.getSize().height / 2);
	}

	//GETTERS & SETTERS

	public JLabel getVoornaamTF() {
		return VoornaamTF;
	}

	public void setVoornaamTF(JLabel voornaamTF) {
		VoornaamTF = voornaamTF;
	}

	public JLabel getAchternaamTF() {
		return AchternaamTF;
	}

	public void setAchternaamTF(JLabel achternaamTF) {
		AchternaamTF = achternaamTF;
	}

	public JTextField getEmailTF() {
		return EmailTF;
	}

	public void setEmailTF(JTextField emailTF) {
		EmailTF = emailTF;
	}

	public JPasswordField getPasswordField() {
		return passwordField;
	}

	public void setPasswordField(JPasswordField passwordField) {
		this.passwordField = passwordField;
	}

	public JTextField getGebruikersnaamTF() {
		return GebruikersnaamTF;
	}

	public void setGebruikersnaamTF(JTextField gebruikersnaamTF) {
		GebruikersnaamTF = gebruikersnaamTF;
	}

	public JTextField getStatusTF() {
		return StatusTF;
	}

	public void setStatusTF(JTextField statusTF) {
		StatusTF = statusTF;
	}

}
